package cn.jingyuan.bee.utils.getter;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.List;

/**
 * 列表类型的 Get 接口
 */
public interface ListTypeGetter {

    /**
     * 获取 Object 型属性值列表
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    List<Object> getObjectList(String key);

    /**
     * 获取 String 型属性值列表
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    List<String> getStringList(String key);

    /**
     * 获取 Integer 型属性值列表
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    List<Integer> getIntegerList(String key);

    /**
     * 获取 Short 型属性值列表
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    List<Short> getShortList(String key);

    /**
     * 获取 Boolean 型属性值列表
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    List<Boolean> getBooleanList(String key);

    /**
     * 获取 Long 型属性值列表
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    List<Long> getLongList(String key);

    /**
     * 获取 Character 型属性值列表
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    List<Character> getCharacterList(String key);

    /**
     * 获取 Double 型属性值列表
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    List<Double> getDoubleList(String key);

    /**
     * 获取 Byte 型属性值列表
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    List<Byte> getByteList(String key);

    /**
     * 获取 BigDecimal 型属性值列表
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    List<BigDecimal> getBigDecimalList(String key);

    /**
     * 获取 BigInteger 型属性值列表
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    List<BigInteger> getBigIntegerList(String key);

}
